一个站点难免会有多个域名,而多个域名总得有一个主次,比如一个网站有两个域名访问,但不管用哪个域名访问,最终都会跳到其中固定的一个域名上去。这个行为就叫域名跳转, 301 只是一个状态码,跳转除了301 还有 302.如何配置跳转
在对应的虚拟主机配置文件中加入
1 2 3 4 5
| <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.aaa.com$ RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] </IfModule>
|
保存退出。
1 2 3
| [root@lamp ~] Syntax OK [root@lamp ~]
|
检测配置是否错误,并重启 apache 服务。
如果是多个域名,这样设置:
1 2 3 4 5 6
| <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.aaa.com [OR] RewriteCond %{HTTP_HOST} ^www.bbb.com$ RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] </IfModule>
|
或者:
1 2 3 4 5
| <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www.test.com$ RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] </IfModule>
|
重启 apache 后,在浏览器访问 www.aaa.com 会直接跳转到 www.test.com 。也可以直接在 linux 命令下使用 curl 命令。
1 2 3 4 5 6
| [root@lamp ~] HTTP/1.1 301 Moved Permanently Date: Thu, 05 Jan 2017 03:36:42 GMT Server: Apache/2.2.31 (Unix) PHP/5.6.6 Location: http://www.test.com/ Content-Type: text/html; charset=iso-8859-1
|